# 创建一个范围，包含一组数字，类似于切片，包括开始，不包括结束
# 最终是一个可迭代的对象，必须配合for循环才可以获取其中每个数字
# range(开始, 结束, 步长)
# 步长不支持负数
# nums = range(1, 11, 2)
# 不写开始，默认是0开始
# nums = range(5)  # 5代表循环5次，从0开始
# for i in nums:
#     print(i)
# 转为列表
# n = range(1, 11, 2)
# print(list(n))

# 斐波那契数列
# 第1项：0   第2项：1
# 从第3项开始，每一项的值时前两项相加的和
# 0  1  1  2  3  5  8  13
"""
# 练习：使用for循环结合range，打印输出斐波那契数列前10项的值
# 提示，每次求出一项，将它放入到列表
fib = [0, 1]
# 前两项是已知的，只需要再循环8次即可
for i in range(8):
    # 每一次循环计算出下一项的值，并放入到列表中
    # 让列表中最后两项相加，得到下一项的值
    fib.append(fib[-1] + fib[-2])
print(fib)
"""
# 改造一下，由用户输入要计算的数列长度；
fib = [0, 1]
n = int(input('请输入要计算的数列的长度：'))
for i in range(n - 2):
    fib.append(fib[-1] + fib[-2])
print(fib)

